#ifndef __GLOBAL_H__
#define __GLOBAL_H__

#include <jni.h>
#include <string>
#include <iostream>

#define EXT_ARCHIVO ".dat"
#define ABRIR "r"
#define CREAR "w+"
#define MODIFICAR "r+"

#define NIVEL_0 "_N0_"
#define NIVEL_1 "_N1_"

class Entorno {

public:
	static Entorno& Instance();
	~Entorno();

	std::string getDataPath();
	void setDataPath(std::string d);
	JNIEnv* getJnienv();
	jobject getJniObj();
	void setJniEnv(JNIEnv* jniEnv);
	void setJniObj(jobject jniObj);

	void updateTree(std::string termino, int offsetDocs, int frec);

private:
	// constructores privados
	Entorno();
	Entorno(const Entorno&);
	Entorno& operator=(const Entorno&);

	std::string DIRECTORIO_DATA;

	// referencias para interactuar con el entorno Java
	JNIEnv* _jniEnv;
	jobject _jniObj;
};

inline Entorno& Entorno::Instance() {
	static Entorno object;
	return object;
}

#endif
